package com.whfc.quality.dao;

import com.whfc.quality.dto.QualityCheckUserDTO;
import com.whfc.quality.entity.QualityCheckUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author : qzexing
 * @version : 1.0
 * @date : 2020-07-29 15:24
 */

public interface QualityCheckUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(QualityCheckUser record);

    int insertSelective(QualityCheckUser record);

    QualityCheckUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(QualityCheckUser record);

    int updateByPrimaryKey(QualityCheckUser record);

    /**
     * 查询质量问题id，用户id，人员类型查询质量问题干系人
     *
     * @param checkId 质量问题上报主表id
     * @param userId  用户主键
     * @param type    人员类型
     * @return
     * @author hw
     * @date 2020/7/31 9:19
     **/
    QualityCheckUser selectByCheckIdAndUserIdAndType(@Param("checkId") Integer checkId,
                                                     @Param("userId") Integer userId,
                                                     @Param("type") Integer type);


    /**
     * 根据问题ID 和 人员类型 查询 干系人员
     *
     * @param checkId 质量问题上报主表id
     * @param type    人员类型
     * @return 干系人员
     **/
    List<QualityCheckUserDTO> selectQualityCheckUserDTOList(@Param("checkId") Integer checkId,
                                                            @Param("type") Integer type);


    /**
     * 使用质量问题上报主表id查询人员信息
     *
     * @param checkId 质量问题上报主表id
     * @return
     * @author hw
     * @date 2020/8/1 10:18
     **/
    List<QualityCheckUserDTO> selectByCheckId(@Param("checkId") Integer checkId);

    /**
     * 查找用户名
     *
     * @param checkId 检查记录ID
     * @param type    类型
     * @return 用户名
     */
    String selectUserNamesByType(@Param("checkId") Integer checkId,
                                 @Param("type") Integer type);

    /**
     * 批量问题上报id查询
     * @param checkIds
     * @return
     */
    List<QualityCheckUserDTO> selectByCheckIds(@Param("checkIds")List<Integer> checkIds);
}